<?php
namespace app\common\controller;

use think\Controller;
use think\facade\Request;

class Update extends Controller
{
    // validate 数据
    // size	上传文件的最大字节
    // ext	文件后缀，多个用逗号分割或者数组
    // type	文件MIME类型，多个用逗号分割或者数组

    // rule 数据
    // date	根据日期和微秒数生成
    // md5	对文件使用md5_file散列生成
    // sha1	对文件使用sha1_file散列生成
    // 自定义 直接传入函数或方法

    private static $config = [
        'default' => [
            'path' =>   '/static/images/default/',
            'validate'  =>  [
                'size'  =>  1024*1024*10,
                'ext'   =>  'jpg,png,gif,jepg',
            ],
            'rule' =>   'uniqid',
        ],
        'carousel'  =>  [
            'path' =>   '/static/images/carouser/',
            'validate'  =>  [
                'size'  =>  1024*1024*10,
                'ext'   =>  'jpg,png,gif,jepg',
            ],
            'rule' =>   'uniqid',
        ],
    ];


    public function update()
    {
        $data = Request::param(true);
        $config = self::$config[$data['type']];
        // 获取表单上传文件 例如上传了001.jpg
        $file = request()->file($data['name']);
        // 移动到框架应用根目录/public/... 目录下
        $info = $file->validate($config['validate'])->rule($config['rule'])->move( '../public'.$config['path']);
        if ($info) {
            // 成功上传后 获取上传信息
            // $info->getExtension(); // 获取后缀 例如：jpg
            // $info->getSaveName(); // 获取自动获取的路径或文件夹 例如：20160820/42a79759f284b767dfcb2a0197904287.jpg
            // $info->getFilename(); // 获取文件名 例如： 42a79759f284b767dfcb2a0197904287.jpg
            $result['path'] = $config['path'] . $info->getSaveName();
        } else {
            // $file->getError(); // 获取上传失败的错误信息
            $result['error'] = $file->getError();
        }
        return json_print($result,'上传成功');
    }


    public function updateMarkDown()
    {
        $file = request()->file('editormd-image-file');
        $info = $file->validate(['size'=>1024*1024*10,'ext'=>'jpg,png,gif'])->rule('uniqid')->move( '../public/static/images/markdown');
        if ($info) {
            $data['message'] = '上传成功!';
            $data['url'] = '/static/images/markdown/' . $info->getSaveName();
            $data['success'] = 1;
        } else {
            $data['message'] = $file->getError();
            $data['url'] = '';
            $data['success'] = 0;
        }
        return json($data);
    }
}